69 #define SLAVE_ADDRESS 0x48
101 WDT_A_hold(WDT_A_BASE);
104 CS_setDCOFreq(CS_DCORSEL_0,CS_DCOFSEL_3);
106 CS_initClockSignal(CS_ACLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_8);
108 CS_initClockSignal(CS_SMCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_8);
110 CS_initClockSignal(CS_MCLK,CS_DCOCLK_SELECT,CS_CLOCK_DIVIDER_8);
119 GPIO_setAsPeripheralModuleFunctionInputPin(
121 GPIO_PIN6 + GPIO_PIN7,
122 GPIO_SECONDARY_MODULE_FUNCTION
126 EUSCI_B_I2C_initMasterParam
param = {0};
127 param.selectClockSource = EUSCI_B_I2C_CLOCKSOURCE_SMCLK;
128 param.i2cClk = CS_getSMCLK();
129 param.dataRate = EUSCI_B_I2C_SET_DATA_RATE_400KBPS;
131 param.autoSTOPGeneration = EUSCI_B_I2C_SEND_STOP_AUTOMATICALLY_ON_BYTECOUNT_THRESHOLD;
132 EUSCI_B_I2C_initMaster(EUSCI_B0_BASE, &
param);
135 EUSCI_B_I2C_setSlaveAddress(EUSCI_B0_BASE,
140 EUSCI_B_I2C_setMode(EUSCI_B0_BASE,
141 EUSCI_B_I2C_RECEIVE_MODE
145 EUSCI_B_I2C_enable(EUSCI_B0_BASE);
147 EUSCI_B_I2C_clearInterrupt(EUSCI_B0_BASE,
148 EUSCI_B_I2C_RECEIVE_INTERRUPT0 +
149 EUSCI_B_I2C_BYTE_COUNTER_INTERRUPT +
150 EUSCI_B_I2C_NAK_INTERRUPT
154 EUSCI_B_I2C_enableInterrupt(EUSCI_B0_BASE,
155 EUSCI_B_I2C_RECEIVE_INTERRUPT0 +
156 EUSCI_B_I2C_BYTE_COUNTER_INTERRUPT +
157 EUSCI_B_I2C_NAK_INTERRUPT
170 while (EUSCI_B_I2C_SENDING_STOP ==
171 EUSCI_B_I2C_masterIsStopSent(EUSCI_B0_BASE));
173 EUSCI_B_I2C_masterReceiveStart(EUSCI_B0_BASE);
175 __bis_SR_register(CPUOFF+GIE);
179 #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
180 #pragma vector=USCI_B0_VECTOR
182 #elif defined(__GNUC__)
183 __attribute__((interrupt(USCI_B0_VECTOR)))
187 static uint8_t count = 0;
188 switch(__even_in_range(UCB0IV,0x1E))
193 EUSCI_B_I2C_masterReceiveStart(EUSCI_B0_BASE);
204 RXData = EUSCI_B_I2C_masterReceiveSingle(
214 GPIO_toggleOutputOnPin(
MPU_initThreeSegmentsParam param
__bic_SR_register_on_exit(LPM3_bits|GIE)